package com.chushouya.order.dao.mapper;

import com.general.framework.data.mybatis.MybatisMapper;
import com.chushouya.order.dao.entity.StatClerkOrderDayEntity;
import com.chushouya.order.dto.api.clerk.ClerkOrderDataDTO;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

public interface StatClerkOrderDayEntityMapper extends MybatisMapper<StatClerkOrderDayEntity, Long> {
    Integer selectDispatchCount(@Param("clerkId")Long clerkId, @Param("startTime") Date startTime, @Param("endTime")Date endTime);

    Integer selectCompleteCount(@Param("clerkId")Long clerkId, @Param("startTime")Date startTime, @Param("endTime")Date endTime);

    Integer selectDeliverCount(@Param("clerkId")Long clerkId, @Param("startTime")Date startTime, @Param("endTime")Date endTime);

    Integer selectStockCount(@Param("clerkId")Long clerkId, @Param("startTime")Date startTime, @Param("endTime")Date endTime);

    Integer selectReturnedCount(@Param("clerkId")Long clerkId, @Param("startTime")Date startTime, @Param("endTime")Date endTime);

    Integer selectSelfCreateCount(@Param("clerkId")Long clerkId, @Param("startTime")Date startTime, @Param("endTime")Date endTime);

    ClerkOrderDataDTO selectOrderCount(@Param("clerkId")Long clerkId, @Param("startTime")Date startTime, @Param("endTime")Date endTime);

    Integer selectCancelCount(@Param("clerkId")Long clerkId, @Param("startTime")Date startTime, @Param("endTime")Date endTime);

    Integer selectCloseCount(@Param("clerkId")Long clerkId, @Param("startTime")Date startTime, @Param("endTime")Date endTime);

    Integer selectBackoutCount(@Param("clerkId")Long clerkId, @Param("startTime")Date startTime, @Param("endTime")Date endTime);


    List<StatClerkOrderDayEntity> statClerkOrderMonth(@Param("clerkId") Long clerkId, @Param("startTime")Date startTime, @Param("endTime")Date endTime);

    List<StatClerkOrderDayEntity> statClerkOrderDay(@Param("clerkId") Long clerkId,@Param("startTime")Date startTime, @Param("endTime")Date endTime);

    StatClerkOrderDayEntity statClerkOrderCount(@Param("clerkId") Long clerkId, @Param("startTime")Date startTime, @Param("endTime")Date endTime);

    Integer selectMultiCount(@Param("clerkId") Long clerkId, @Param("startTime")Date startTime, @Param("endTime")Date endTime);

}